package com.xu.consumer.service;

import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import com.xu.common.vo.R;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import javax.annotation.Resource;

/**
 * @author 徐老板
 * @date 2020/4/2   10:39
 */
@Service
public class WeatherService {

    //通过这个类来连接提供者controller层对外暴露的接口
    @Resource
    private RestTemplate restTemplate;

    //查询当日
    @HystrixCommand(fallbackMethod = "errorToday")
    public R queryToday(String city){
        return restTemplate.getForObject(
                "http://robinprovider/provider/weather/querytoday.do?city=" + city, R.class);
    }

    //降级方法 服务出异常的时候，执行本方法
    //这里只写了这一个降级方法 另外两个方法没有写降级方法
    public R errorToday(String city){
        return R.error(city + "---天气信息异常");
    }

    public R queryCity(String city){
        return restTemplate.getForObject("http://robinprovider/provider/weather/querycity.do?city="+city,
                R.class);
    }
    public R queryAll(){
        return restTemplate.getForObject("http://robinprovider/provider/weather/all.do",
                R.class);
    }



}
